package com.chb.docter.service;

import com.chb.docter.dto.RegistrationDto;
import com.chb.docter.params.SchedulingAndPatientParam;
import com.chb.docter.params.SchedulingParam;
import com.chb.docter.params.SchedulingSaveParam;
import com.hos.entity.his.Scheduling;
import com.hos.entity.sys.User;
import com.hos.vo.Result;

import java.util.List;
import java.util.Map;

/**
 * @author: 陈海彬
 * @date: Created in 2023/12/11 19:54
 * @description:
 * @modified By:
 * @version:
 */
public interface SchedulingService {


    /**
     * 获取医生排班的表格信息
     *
     * @param schedulingParam 请求参数
     */
    Result<Map<String, Object>> getSchedulingList(SchedulingParam schedulingParam);


    /**
     * 保存排班信息
     *
     * @param params 排班数据
     */
    boolean saveScheduling(SchedulingSaveParam params);


    /**
     * 条件查询排班医生信息
     *
     * @param params 条件查询参数
     */
    List<RegistrationDto> findSchedulingList(SchedulingAndPatientParam params);


    /**
     * 查询需要排班的用户列表 可以传部门ID 如果部门ID为空，则直接显示所有
     *
     * @param deptId 科室id
     */
    List<User> queryUsersNeedScheduling(Long deptId);


    /**
     * 查询我的排班
     *
     * @param schedulingParam 排班参数
     */
    Result<Map<String, Object>> queryMyScheduling(SchedulingParam schedulingParam);

    /**
     * 查询我的排班app
     *
     * @param schedulingParam 排班参数
     */
    Result<Map<String, Object>> AppQueryMyScheduling(SchedulingParam schedulingParam);
}